Analyses morphométriques


Eddy Fortier

🤔 👀

Pierre bellec

🤔 ⚠️ 👀

Warning

Ce chapitre est en cours de développement. Il se peut que l’information soit incomplète, ou sujette à changement.

Objectifs du cours

Ce cours introduit différentes approches pour quantifier la morphologie du cerveau à l’aide des données d’imagerie par résonance magnétique anatomique. Il sera question dans ce chapitre de trois grandes approches d’analyse:

  • la volumétrie, qui vise a mesurer la taille d’une région cérébrale;

  • la morphométrie basée sur les voxels (voxel-based morphometry ou VBM), qui vise à mesurer le volume de matière grise pour l’ensemble du cerveau;

  • les analyses de surface, qui exploitent la structure en ruban de la matière grise.

On parlera également d’étapes d’analyse d’images utiles pour l’ensemble de ces techniques: le recalage, la segmentation et le contrôle de qualité.

Morphométrie

_images/morphometrie_durer.jpg

Fig. 18 Étude de Dürer sur les proportions du visage. Image appartenent au domaine public, tirée de wikimedia.

En neurosciences, la morphométrie est l’étude de la forme du cerveau et de ses structures. Le terme morphométrie vient de deux termes tirés du grec ancien: morphos (forme) et métron (mesure). La morphométrie est donc la “mesure” de la “forme”. Cette discipline se concentre sur la caractérisation des dimensions et des formes des différentes structures d’intérêt. Pour ce faire, il est nécessaire de pouvoir observer clairement les délimitations de ces structures.

_images/ledig2018.webp

Fig. 19 Cette figure illustre des différences morphologiques entre des individus présentant des profils cliniques différents: sans atteinte cognitive (haut), troubles légers de la cognition (milieu), démence de type Alzheimer (bas). Par ailleurs, il est également possible d’observer des différences longitudinales au sein d’un même individu (de gauche à droite, visite initiale, suivi après deux ans, différence entre les deux images). Figure tirée de [LSG+18], sous licence CC-BY.

Comme le démontre la figure ci-haut, l’utilisation de ce genre de technique permet aussi de faire des comparaisons inter-individuelles. On pourrait en effet vouloir comparer les variations dans la forme de diverses structures à travers les cerveaux de différentes personnes. De telles comparaisons peuvent être informatrices au niveau du stade développemental d’un sujet, ou même, de la présence de certaines lésions ou pathologies.

Volumétrie

Segmentation manuelle

_images/ashempour2019.jpg

Fig. 20 Cette figure illustre un protocole de segmentation manuelle de l’amygdale. Vue coronale d’une segmentation manuelle de l’amygdale gauche (jaune) et droit (bleu) avant (gauche) et après (droite) avoir procédé aux corrections dans le plan coronal. Figure tirée de [HTM+19], sous licence CC-BY.

La volumétrie manuelle consiste à manuellement délimiter une aire cérébrale particulière, comme l’hippocampe ou l’amygdale (voir Fig. 20). Cette approche nécessite du temps, car le contour des structures d’intérêt doit être délimité manuellement sur chaque coupe d’IRM. On commencera d’abord par identifier ce contour sur chaque coupe où la structure est présente dans un premier plan (par exemple, sur une coupe axiale), puis il faudra aller corriger cette délimitation sur chaque coupe prise dans un second plan (comme une coupe sagitale) et finalement, répéter de nouveau cette correction sur le troisième plan (une coupe coronale).

Pour un rappel concernant les différents types de coupes du cerveau, veuillez vous référer au Chapitre 1: Cartes cérébrales.

Ce type d’approche requiert également un protocole de segmentation rigoureux, avec des critères anatomiques clairs, pour décider où une région cérébrale se trouve. Pour certaines structures, comme les ventricules latéraux, c’est assez clair. Pour d’autres structures, comme pour l’hippocampe, il existe des protocoles détaillés (par exemple: [WDO+17]). Enfin, pour d’autres régions, comme les aires visuelles (V1, V2, etc.), il est nécessaire de réaliser des expériences fonctionnelles afin de pouvoir les délimiter. En effet, dans ce dernier cas, les délimitations anatomiques ne sont pas toujours disponibles ou bien établies.

Un protocole de segmentation clair est donc nécessaire pour assurer un bon niveau de reproductibilité des résultats et un accord inter-juge acceptable. Certains protocoles offrent aussi un processus de certification, ce qui offre un certain niveau de garantie que la personne effectuant la segmentation applique le protocole correctement.

Segmentation automatique

# Téléchargement de l'atlas Harvard-Oxford
from nilearn import datasets

# Enlève les warnings
import warnings
warnings.filterwarnings("ignore")

atlas = datasets.fetch_atlas_harvard_oxford('cort-maxprob-thr25-2mm').maps
mni = datasets.fetch_icbm152_2009()

# Visualisation de la figure
import matplotlib.pyplot as plt
from myst_nb import glue
from nilearn import plotting

fig = plt.figure(figsize=(12, 4))
plotting.plot_roi(atlas,
    bg_img=mni.t1,
    axes=fig.gca(),
    title="Atlas Harvard-Oxford",
    cut_coords=(8, -4, 9),
    colorbar=True,
    cmap='Paired')

glue("harvard-oxford-fig", fig, display=False)
_images/morphometrie_1_1.png

Fig. 21 Un exemple d’atlas de régions anatomiques: l’atlas Harvard-Oxford. Cette figure est générée par du code python à l’aide de la librairie nilearn à partir d’un jeu de données public appelé fetch_atlas_harvard_oxford (Nilearn, section 9.2.1: Basic Atlas plotting) [DSF+06, FCB+05, GSM+07, MGK+06] (cliquer sur + pour voir le code).

Afin d’automatiser le travail de segmentation, il est possible d’utiliser une segmentation déjà effectuée par une équipe de chercheurs dans un espace de référence, aussi appelé espace stéréotaxique. On appelle ces outils de référence des atlas de segmentation, ou parfois, des atlas de parcellisation. Comme il existe une variété de parcellisations basées sur différents critères anatomiques ou fonctionnels, il est important de choisir adéquatement l’atlas en fonction des structures particulières que vous voulez étudier. Afin d’ajuster l’atlas sur les données d’un participant, les images structurelles de ce dernier sont d’abord recalées de manière automatisée vers l’espace stéréotaxique de référence. Cette transformation permet par la suite d’adapter l’atlas à l’anatomie de chaque sujet.

Le recalage

Afin d’appliquer un atlas de régions cérébrales sur une IRM individuelle, il est nécessaire de recaler cette IRM sur l’espace stéréotaxique qui a été utilisé pour établir les régions. Ce processus mathématique va chercher à déformer l’image individuelle afin de l’ajuster à l’espace stéréotaxique. Cette transformation peut être affine (aussi appelée transformation linéaire: translation, rotation, mise à l’échelle) ou bien non-linéaire (déplacement dans n’importe quelle direction de l’espace). L’objectif du recalage d’augmenter le niveau de similarité entre les images, mais il est aussi important que les déformations soient continues. Autrement dit, des endroits adjacents dans les images non-recalées doivent toujours être adjacents après le recalage. Les images ci-dessous illustrent l’effet de différents types de recalage. Elles sont tirées de la documentation du logiciel slicer, sous licence CC-Attributions Share Alike.

_images/registration_slicer_raw.gif

Fig. 22 Images brutes: deux scans du même sujet, prises durant deux séances d’acquisition différentes.

_images/registration_slicer_affine.gif

Fig. 23 Images recalées par un processus de transformation affine seulement.

_images/registration_slicer_nonlinear.gif

Fig. 24 Images recalées par une transformation affine suivie d’une transformation non-linéaire.

_images/registration_slicer_nonlinear_only.gif

Fig. 25 Visualisation des effets du recalage non-linéaire seulement.

# Ce code récupère des données IRM T1
# et génère une image dans trois plans de coupes

# Enlève les warnings
import warnings
warnings.filterwarnings("ignore")

# Télécharge un scan anatomique (template MNI152)
from nilearn.datasets import fetch_icbm152_2009
mni = fetch_icbm152_2009()

# Visualise le volume cérébral
import matplotlib.pyplot as plt
from myst_nb import glue
from nilearn.plotting import plot_anat

fig = plt.figure(figsize=(12, 4))
plot_anat(
  mni.t1,
  axes=fig.gca(),
  cut_coords=[-17, 0, 17],
  title='Espace stereotaxique MNI152'
)
glue("mni-template-fig", fig, display=False)

Espace stéréotaxique

Afin de définir une anatomie de référence, les chercheurs utilisent généralement un cerveau “moyen”. Afin d’obtenir cette référence, le cerveau de plusieurs dizaines d’individus sont recalés les uns avec les autres, puis moyennés jusqu’à obtenir une seule image. Si le recalage a bien fonctionné, les détails de la neuroanatomie sont préservés dans la moyenne.

_images/morphometrie_3_0.png

Fig. 26 Espace stéréotaxique de l’Institut Neurologique de Montréal (MNI). Cette espace de référence a été obtenu en faisant la moyenne des images cérébrales de 152 sujets après avoir procédé à un recalage non-linéaire itératif [FEB+11].

Analyses statistiques

_images/ledig2018_stats.png

Fig. 27 Cette figure illustre les différences de volume de l’hippocampe entre participants cognitivement sains (HC), participants avec troubles cognitifs légers stables (sMCI) ou progressifs (pMCI), ou patients avec une démence de type Alzheimer (AD), dans la cohorte ADNI. Plus les symptômes cliniques sont sévères, plus la probabilité de présenter la maladie d’Alzheimer est grand, et plus le stade de la maladie est sévère. L’atrophie de l’hippocampe est claire chez les patients présentant les symptômes les plus sévères. Figure tirée de [LSG+18], sous licence CC-BY.

Pour les analyses statistiques, on extrait le volume de chaque structure segmentée (en \(mm^3\)), et on peut par exemple comparer statistiquement le volume moyen entre deux groupes, ou tester l’association du volume avec une variable comme l’âge. Par exemple, dans la Fig. 27, on compare le volume de l’hippocampe entre différents groupes cliniques avec différents risques de la maladie d’Alzheimer.

Morphométrie basée sur les voxels (VBM)

Densité de matière grise

La morphométrie basée voxel (VBM) a pour objectif de mesurer le volume de matière grise immédiatement autour d’un voxel donné. Cette approche n’est donc pas limitée par le besoin d’avoir des frontières préétablies claires entre différentes structures cérébrales. Lorsque l’on génère une mesure de volume pour l’ensemble des voxels du cerveau, on obtient une carte 3D de la densité de matière grise. L’avantage premier de cette approche est d’être automatisée et systématique. La présence d’une personne ne devient nécessaire que pour vérifier que la procédure a fonctionné correctement, une étape appelée contrôle qualité (ou QC, pour “quality control”). On va aussi tester la morphologie du cerveau au travers de l’ensemble de la matière grise. Mais le grand nombre de mesures différentes générées pose un problème de comparaisons multiples lorsque vient le temps de faire les analyses statistiques, voir le Chapitre 10: Cartes statistiques.

Segmentation

# Importe les librairies nécessaires
import matplotlib.pyplot as plt
import numpy as np
from myst_nb import glue
import seaborn as sns

import warnings
warnings.filterwarnings("ignore")

# Télécharge un scan anatomique (template MNI152)
from nilearn import datasets
mni = datasets.fetch_icbm152_2009()

# Initialise la figure
fig = plt.figure(figsize=(15, 15))

from nilearn.plotting import plot_stat_map
from nilearn.image import math_img
from nilearn.input_data import NiftiMasker

thresh = 0.8
coords = [-5, 5, -25]

# Full brain
ax_plot = plt.subplot2grid((4, 3), (0, 0), colspan=1)
mask_brain = math_img(f"img>{thresh}", img=mni.mask)
val_brain = NiftiMasker(mask_img=mask_brain).fit_transform(mni.t1)
ax = sns.distplot(val_brain, norm_hist=False)
ax.set_xlim(left=0, right=100)
ax_plot = plt.subplot2grid((4, 3), (0, 1), colspan=2)
plot_stat_map(mni.mask,
              bg_img=mni.t1,
              cut_coords=coords,
              axes=ax_plot,
              black_bg=True,
              title='cerveau'
              )

# Gray matter
ax_plot = plt.subplot2grid((4, 3), (1, 0), colspan=1)
mask_gm = math_img(f"img>{thresh}", img=mni.gm)
val_gm = NiftiMasker(mask_img=mask_gm).fit_transform(mni.t1)
ax = sns.distplot(val_gm, norm_hist=False)
ax.set_xlim(left=0, right=100)
ax_plot = plt.subplot2grid((4, 3), (1, 1), colspan=2)
plot_stat_map(mni.gm,
              bg_img=mni.t1,
              cut_coords=coords,
              axes=ax_plot,
              black_bg=True,
              title='matière grise'
              )

# White matter
ax_plot = plt.subplot2grid((4, 3), (2, 0), colspan=1)
mask_wm = math_img(f"img>{thresh}", img=mni.wm)
val_wm = NiftiMasker(mask_img=mask_wm).fit_transform(mni.t1)
ax = sns.distplot(val_wm, norm_hist=False)
ax.set_xlim(left=0, right=100)
ax_plot = plt.subplot2grid((4, 3), (2, 1), colspan=2)
plot_stat_map(mni.wm,
              bg_img=mni.t1,
              cut_coords=coords,
              axes=ax_plot,
              black_bg=True,
              title='matière blanche'
              )

# CSF
ax_plot = plt.subplot2grid((4, 3), (3, 0), colspan=1)
mask_csf = math_img(f"img>{thresh}", img=mni.csf)
val_csf = NiftiMasker(mask_img=mask_csf).fit_transform(mni.t1)
ax = sns.distplot(val_csf, axlabel="intensité de l'image", norm_hist=False)
ax.set_xlim(left=0, right=100)
ax_plot = plt.subplot2grid((4, 3), (3, 1), colspan=2)
plot_stat_map(mni.csf,
              bg_img=mni.t1,
              cut_coords=coords,
              axes=ax_plot,
              black_bg=True,
              title='liquide cephalo rachidien'
              )

from myst_nb import glue
glue("mni-segmentation-fig", fig, display=False)
_images/morphometrie_5_0.png

Fig. 28 Segmentation probabiliste des principaux types de tissus, et distribution des valeurs pondérées en T1 dans les voxels “purs” (probabilité supérieure à 80% pour un type de tissu donné). L’image pondérée en T1 ainsi que les segmentations correspondent à l’espace stéréotaxique MNI152 [FEB+11].

Une étape importante de la VBM est la segmentation. Cette analyse vise à catégoriser les différents tissus du cerveau en classes, notamment matière grise, matière blanche et liquide céphalo-rachidien. On va aussi généralement extraire un masque du cerveau et exclure les méninges ainsi que le crâne. On va généralement inclure d’autres types de tissus également, comme la graisse. Un algorithme de segmentation va examiner la distribution des niveaux de gris dans l’image, par exemple pondérée en T1, et estimer pour chaque voxel la proportion du voxel qui contient un tissu donné. Cette proportion est souvent appelé effet de volume partiel. Un voxel peut par exemple être assigné à 80% de matière grise et 20% de liquide céphalo-rachidien.

Effets de volume partiel

Il est possible que la segmentation automatique nous retourne certains tissus non-désirés, mais dont les valeurs dont les valeurs dans l’image sont similaires à celle de la matière grise. Il est ainsi possible que des voxels se trouvant directement sur la jonction entre une zone blanche et une zone noire (par exemple, sur une paroi de matière blanche qui borderait un ventricule) aient comme valeur résultante une valeur s’apparentant plutôt au gris associé à la matière grise (valeur moyenne entre blanc et noir). On appelle ce genre d’effet de mélange de noir et de blanc les volumes partiels (une partie du volume du voxel est blanche alors que l’autre partie est noire).

Erreurs de segmentation

Il est possible de perdre certaines structures pour lequelles le contraste entre la matière blanche et matière grise n’est pas assez important pour que l’algorithme réussisse à les classifier efficacement. Pour ce genre de structure, il est important d’ajouter des a priori (des règles, ou conditions supplémentaires) afin de ne pas les perdre. Il est aussi envisageable de corriger cette partie de la segmentation de façon manuelle.

_images/segmentation-error-volume-fig.png

Fig. 29 Image de gauche: IRM individuelle pondérée en T1. Image de droite: classification matière grise et matière blanche générée par le logiciel ANTS. Notez comment la matière blanche proche du gyrus est classifié de manière erronnée comme matière grise. Image sous licence CC Attribution, tirée de Klein et al., 2017 [KGB+17].

Lissage

# Improte les librairies nécessaires
import matplotlib.pyplot as plt
import numpy as np
from myst_nb import glue
import seaborn as sns

import warnings
warnings.filterwarnings("ignore")

# Télécharge un scan anatomique (template MNI152)
from nilearn import datasets
mni = datasets.fetch_icbm152_2009()

# Initialise la figure
fig = plt.figure(figsize=(15, 15))

from nilearn.plotting import plot_anat
from nilearn.image import math_img
from nilearn.input_data import NiftiMasker
from nilearn.image import smooth_img

list_fwhm = (0, 5, 8, 10)
n_fwhm = len(list_fwhm)
coords = [-5, 5, -25]

for num, fwhm in enumerate(list_fwhm):
    ax_plot = plt.subplot2grid((n_fwhm, 1), (num, 0), colspan=1)
    vol = smooth_img(mni.gm, fwhm)
    plot_anat(vol,
              cut_coords=coords,
              axes=ax_plot,
              black_bg=True,
              title=f'FWHM={fwhm}',
              vmax=1)

from myst_nb import glue
glue("smoothing-fig", fig, display=False)
_images/morphometrie_7_0.png

Fig. 30 Illustration de l’impact du lissage sur une carte de densité de matière grise en VBM. Lorsque le paramère FWHM augmente, la mesure de densité représente une région entourant le voxel de plus en plus grande. Cette figure est générée par du code python à l’aide de la librairie nilearn à partir d’un jeu de données public appelé template MNI152 2009 [FEB+11] (cliquer sur + pour voir le code).

L’étape suivante correspond au lissage spatial, qui consiste à ajouter un filtre sur l’image qui va la rendre plus floue. En pratique, le lissage remplace la valeur à chaque voxel par une moyenne pondérée de ses voisins. Comme c’est une moyenne pondérée, la valeur originale du voxel est celle qui aura la plus grande pondération, mais les valeurs des voxels situés directement autour vont aussi l’affecter grandement. La valeur des poids suit un profil de distribution Gaussienne 3D. Il est nécessaire de procéder à cette étape afin d’obtenir des valeurs de densité de matière grise pour des zones qui dépasse le voxel unique, et analogue du volume d’une petite région, centrée sur le voxel. La taille de la région est contrôlée par un paramètre de largeur à mi-hauteur, ou FWHM (full width at half maximum), qui se mesure en millimètres. Plus la valeur de FWHM est grande, plus grand sera le rayon du voisinage de voxels qui auront un impact sur la valeur lissée du voxel, voir Fig. 30.

Analyses statistiques

import numpy as np
import matplotlib.pyplot as plt
from nilearn import datasets
from nilearn.input_data import NiftiMasker
from nilearn.image import get_data

n_subjects = 50  # more subjects requires more memory

# Charge les données
oasis_dataset = datasets.fetch_oasis_vbm(n_subjects=n_subjects)
gray_matter_map_filenames = oasis_dataset.gray_matter_maps
age = oasis_dataset.ext_vars['age'].astype(float)

# Prétraitement (mask)
nifti_masker = NiftiMasker(
    standardize=False,
    smoothing_fwhm=2,
    memory='nilearn_cache')  # cache options

# Normalise les données
gm_maps_masked = nifti_masker.fit_transform(gray_matter_map_filenames)

from sklearn.feature_selection import VarianceThreshold
variance_threshold = VarianceThreshold(threshold=.01)

gm_maps_thresholded = variance_threshold.fit_transform(gm_maps_masked)
gm_maps_masked = variance_threshold.inverse_transform(gm_maps_thresholded)
data = variance_threshold.fit_transform(gm_maps_masked)

# Modèle de régression massivement univarié
from nilearn.mass_univariate import permuted_ols
neg_log_pvals, t_scores_original_data, _ = permuted_ols(
    age, data,  # + intercept as a covariate by default
    n_perm=2000,  # 1,000 in the interest of time; 10000 would be better
    verbose=1, # display progress bar
    n_jobs=1)  # can be changed to use more CPUs
signed_neg_log_pvals = neg_log_pvals * np.sign(t_scores_original_data)
signed_neg_log_pvals_unmasked = nifti_masker.inverse_transform(
    variance_threshold.inverse_transform(signed_neg_log_pvals))

# Visualise les résultats
threshold = -np.log10(0.1)  # 10% corrected

fig = plt.figure(figsize=(10, 3), facecolor='k')
bg_filename = gray_matter_map_filenames[0]
cut_coords = [0, 0, 0]
display = plot_stat_map(signed_neg_log_pvals_unmasked, bg_img=bg_filename,
                        threshold=threshold, cmap=plt.cm.RdBu_r,
                        cut_coords=cut_coords,
                        figure=fig)
title = ('Negative $\\log_{10}$ p-values'
         '\n(Non-parametric + max-type correction)')
display.title(title, y=1.2)
plt.show()

from myst_nb import glue
glue("vbm-fig", fig, display=False)
_images/morphometrie_9_68.png

Fig. 31 Régression linéaire en VBM. On teste ici l’effet de l’âge sur un groupe (N=50) de participants de la base de données OASIS. La significativité \(-\log_{10}(p)\) de l’effet de l’âge est présentée superposé à une image de densité de matière grise. Cette figure est adapté d’un tutoriel Nilearn.

Afin de pouvoir comparer les valeurs de densité de matière grise entre les sujets, on utilise la même procédure de recalage non-linéaire que pour la volumétrie automatique. Contrairement à la volumétrie manuelle où chaque volume à l’étude est délimité de façon à représenter la même structure d’intérêt, le recalage utilisé en VBM n’est pas lié à une structure particulière. Une fois les cartes de densité recalées dans l’espace stéréotaxique de référence, on peut faire des tests statistiques à chaque voxel. Dans l’exemple ci-dessus, on teste l’effet de l’âge sur la matière grise. C’est généralement le genre d’image qui sera par la suite utilisé lors de publications scientifiques.

Les détails concernant les modèles stastistiques seront présentés dans le chapitre sur la régression linéaire.

Analyses de surface

Cette famille d’approches diffère des précédentes en ce qu’elle ne mesure pas la densité de la matière grise, mais plutôt sa répartition, son épaisseur et/ou sa surface. Cette façon de faire particulière permet de faire des analyses sur l’ensemble de la surface corticale. Par contre, qui dit surface corticale, sous-entend aussi que les structures sous-corticales sont laissées de côté. Cette famille de techniques n’est donc pas recommandée pour un protocol de recherche durant lequel on voudrait étudier des structures enfouies dans la boîte crânienne telles que l’hypothalamus, les ganglions de la base, etc. Plutôt que de procéder à l’analyse du contenu d’unités de volume (voxels), comme c’était le cas pour la VBM, on utilisera ici l’analyse du contenu d’unités de surface: les vertex. Ainsi, on cherche à étudier à l’aide de ceux-ci la forme que prend localement la matière grise.

Le processus permettant d’arriver aux résultats partage certaines similitudes avec les analyses volumétriques, alors que d’autres étapes sont spécifiques aux analyses de surface.

  • En effet, la première étape consiste encore à procéder au prétraitement (recalage et contrôle de qualité) et à la segmentation des images du cerveau. Par contre, certaines des étapes suivantes diffèrent de celles utilisées lors des protocols de volumétrie.

  • De ce fait, la seconde étape vise à délimiter la frontière entre la surface de matière grise et les tissus/milieux environnant. Afin d’y parvenir, on utilisera des modèles permettant d’estimer la surface piale (surface extérieure du cortex, à la frontière entre la matière grise et le liquide céphalo-rachidien) et la surface intérieure (à la frontière entre la matière grise et la matière blanche). Il faudra, pour y parvenir, éliminer des images les structures n’appartenant pas au cortex (boîte crânienne, tissus adipeux, méninges, liquide céphalo-rachidien, etc.). C’est l’étape de la création du masque du cerveau. Il est important de s’assurer, une fois que le masque est généré, qu’il contient bel et bien l’ensemble du volume du cerveau, ni plus, ni moins. Il y a en effet un aspect de contrôle de qualité qui doit être vérifié à ce stade afin de ne pas mettre en péril l’ensemble des étapes suivantes.

  • On procédera ensuite à la délimitation des surfaces piale et interne. Pour ce faire, on modélisera un volume en forme de ballon virtuel au centre de chacun des hémisphères du cerveau. On définit ensuite des contraintes physiques (délimitation de la “cavité” interne dans laquelle le ballon peut évoluer) afin de marquer la frontière entre la matière blanche et la matière grise (surface interne). On procède ensuite à “gonfler” ce ballon jusqu’à ce qu’il épouse le mieux possible la frontière de la surface interne (jusqu’à ce que le ballon soit gonflé jusqu’à occuper tout l’espace dans la cavité et suivre l’ensemble des courbes de la paroi). Il est aussi possible de faire la procédure inverse. On pourrait en effet générer un ballon virtuel autour de chacun des hémisphères et les “dégonfler” jusqu’à ce qu’ils épousent les contours des frontières délimitées par les contraintes physiques. Lorsque l’une des frontières (surface interne ou surface piale) est délimitées, il est possible de continuer la procédure de gonflement/dégonflement afin d’obtenir la seconde surface. On peut ensuite utiliser la distance entre les deux surfaces en un point donné afin d’évaluer l’épaisseur corticale pour ce vertex. Cette distance est obtenue en prenant la perpendiculaire à l’une des surfaces et en mesurant la distance entre les deux surfaces le long de cette perpendiculaire. Ce genre de technique permet par la suite de générer des cartes d’épaisseur corticale.

  • La dernière étape des analyses de surfaces marque un retour aux similitudes avec les techniques de volumétrie: c’est l’étape des analyses statistiques.

Chaine de traitements

Comme pour toute opération automatisée, il reste toujours une possibilité d’erreur au cours du processus de recalage. Il est donc nécessaire de prévoir une étape de vérification des résultats afin de s’assurer qu’il n’y a pas eu d’aberrations qui se sont introduites dans les données. Ces aberrations peuvent venir de plusieurs sources différentes:

  • Erreurs dans les étapes de recalage linéaire et/ou non-linéaire

  • Présence d’artéfacts lors de l’acquisition des données (présence d’objects métalliques, etc.)

  • Etc.

Cette vérification de la qualité des images permettra d’éliminer les images inutilisables avant de procéder aux analyses statistiques. Conserver ces dernières pourrait avoir des impacts importants sur les résultats ainsi que sur les conclusions tirées, c’est pourquoi il est primordial de garder ce risque en tête lors du traitement des données.

Attention

Malheureusement, ce genre de technique est coûteuse en terme de ressources de calcul et des erreurs peuvent survenir à plusieurs niveaux. Par exemple, cette technique est particulièrement peu robuste face aux effets des volumes partiels. On pourrait en effet avoir une surface qui ne se rend pas jusqu’au fond d’un sulcus, ou lorsque les giri sont très rapprochés, qui ne rentre même pas à l’intérieur du sulcus. Le résultat de ces deux types d’erreurs, qui sont possibles autant sur la surface piale que sur la surface interne, sera une forte surestimation localisée de l’épaisseur corticale. C’est pourquoi il est souhaitable de procéder à des contrôles de qualité fréquemment.

Conclusion

Ce chapitre vous a introduit aux différentes familles de techniques de morphologie computationnelle qu’il est possible d’utiliser avec des données acquises en imagerie par résonance magnétique anatomique. On a discuté de plusieurs techniques clés d’analyse d’image, et l’on a parlé de modèles statistiques.

Références

DSF+06

Rahul S. Desikan, Florent Ségonne, Bruce Fischl, Brian T. Quinn, Bradford C. Dickerson, Deborah Blacker, Randy L. Buckner, Anders M. Dale, R. Paul Maguire, Bradley T. Hyman, Marilyn S. Albert, and Ronald J. Killiany. An automated labeling system for subdividing the human cerebral cortex on mri scans into gyral based regions of interest. NeuroImage, 31(3):968–980, 2006. URL: https://www.sciencedirect.com/science/article/pii/S1053811906000437, doi:https://doi.org/10.1016/j.neuroimage.2006.01.021.

FEB+11(1,2,3)

Vladimir Fonov, Alan C Evans, Kelly Botteron, C Robert Almli, Robert C McKinstry, D Louis Collins, and Brain Development Cooperative Group. Unbiased average age-appropriate atlases for pediatric studies. Neuroimage, 54(1):313–327, January 2011.

FCB+05

Jean A. Frazier, Sufen Chiu, Janis L. Breeze, Nikos Makris, Nicholas Lange, David N. Kennedy, Martha R. Herbert, Eileen K. Bent, Vamsi K. Koneru, Megan E. Dieterich, Steven M. Hodge, Scott L. Rauch, P. Ellen Grant, Bruce M. Cohen, Larry J. Seidman, Verne S. Caviness, and Joseph Biederman. Structural brain magnetic resonance imaging of limbic and thalamic volumes in pediatric bipolar disorder. American Journal of Psychiatry, 162(7):1256–1265, 2005. doi:10.1176/appi.ajp.162.7.1256.

GSM+07

Jill M. Goldstein, Larry J. Seidman, Nikos Makris, Todd Ahern, Liam M. O’Brien, Verne S. Caviness, David N. Kennedy, Stephen V. Faraone, and Ming T. Tsuang. Hypothalamic abnormalities in schizophrenia: sex effects and genetic vulnerability. Biological Psychiatry, 61(8):935–945, 2007. URL: https://www.sciencedirect.com/science/article/pii/S0006322306008195, doi:https://doi.org/10.1016/j.biopsych.2006.06.027.

HTM+19

Niloofar Hashempour, Jetro J Tuulari, Harri Merisaari, Kristian Lidauer, Iiris Luukkonen, Jani Saunavaara, Riitta Parkkola, Tuire Lähdesmäki, Satu J Lehtola, Maria Keskinen, John D Lewis, Noora M Scheinin, Linnea Karlsson, and Hasse Karlsson. A novel approach for manual segmentation of the amygdala and hippocampus in neonate MRI. Front. Neurosci., 13:1025, September 2019.

KGB+17

Arno Klein, Satrajit S Ghosh, Forrest S Bao, Joachim Giard, Yrjö Häme, Eliezer Stavsky, Noah Lee, Brian Rossa, Martin Reuter, Elias Chaibub Neto, and Anisha Keshavan. Mindboggling morphometry of human brains. PLoS Comput. Biol., 13(2):e1005350, February 2017.

LSG+18(1,2)

Christian Ledig, Andreas Schuh, Ricardo Guerrero, Rolf A Heckemann, and Daniel Rueckert. Structural brain imaging in alzheimer's disease and mild cognitive impairment: biomarker analysis and shared morphometry database. Sci. Rep., 8(1):1–16, July 2018.

MGK+06

Nikos Makris, Jill M. Goldstein, David Kennedy, Steven M. Hodge, Verne S. Caviness, Stephen V. Faraone, Ming T. Tsuang, and Larry J. Seidman. Decreased volume of left and total anterior insular lobule in schizophrenia. Schizophrenia Research, 83(2):155–171, 2006. URL: https://www.sciencedirect.com/science/article/pii/S0920996405004998, doi:https://doi.org/10.1016/j.schres.2005.11.020.

WDO+17

Laura E M Wisse, Ana M Daugherty, Rosanna K Olsen, David Berron, Valerie A Carr, Craig E L Stark, Robert S C Amaral, Katrin Amunts, Jean C Augustinack, Andrew R Bender, Jeffrey D Bernstein, Marina Boccardi, Martina Bocchetta, Alison Burggren, M Mallar Chakravarty, Marie Chupin, Arne Ekstrom, Robin de Flores, Ricardo Insausti, Prabesh Kanel, Olga Kedo, Kristen M Kennedy, Geoffrey A Kerchner, Karen F LaRocque, Xiuwen Liu, Anne Maass, Nicolai Malykhin, Susanne G Mueller, Noa Ofen, Daniela J Palombo, Mansi B Parekh, John B Pluta, Jens C Pruessner, Naftali Raz, Karen M Rodrigue, Dorothee Schoemaker, Andrea T Shafer, Trevor A Steve, Nanthia Suthana, Lei Wang, Julie L Winterburn, Michael A Yassa, Paul A Yushkevich, Renaud la Joie, and Hippocampal Subfields Group. A harmonized segmentation protocol for hippocampal and parahippocampal subregions: why do we need one and what are the key goals? Hippocampus, 27(1):3–11, January 2017.

Exercices

Exercice 3.1

Choisissez la meilleure réponse et expliquez pourquoi. Des données d’IRM T1 individuelle sont…

  1. Une image 3D d’un cerveau.

  2. Des dizaines d’images 2D sagittales d’un cerveau.

  3. Des centaines d’images 2D axiales, coronales et sagittales d’un cerveau.

  4. Toutes ces réponses.

Exercice 3.2

On souhaite comparer le volume moyen du putamen droit entre des participants neurotypiques et des participants étant sur le spectre de l’autisme. On considère pour cela deux méthodes alternatives: la volumétrie manuelle et l’analyse VBM. Pour chacune de ces techniques, citez une force et une faiblesse en lien avec les objectifs de l’étude.

Exercice 3.3

Pour chacun des énoncés suivants, spécifiez si l’affirmation est vraie ou fausse et expliquez votre choix.

  • Les données IRM T1 doivent être réalignées pour étudier la morphologie du cerveau à l’échelle d’une population.

  • Les données d’IRM “brutes” (avant l’étape du prétraitement) sont inutilisables pour étudier la morphométrie.

  • En VBM, le lissage spatial est important, même pour une analyse individuelle.

Exercice 3.4

Pour chacun des énoncés suivants, spécifiez si l’affirmation est vraie ou fausse et expliquez votre choix.

  • Les mouvements d’un participant de recherche peuvent créer du bruit dans une carte VBM.

  • La présence de métal peut créer du bruit et des déformations dans une carte VBM.

  • Un trou dans une carte cérébrale VBM signifie nécessairement qu’il y a un trou dans le cerveau du participant.

Exercice 3.5

En vérifiant ses données structurelles, une chercheuse réalise qu’un de ses participants de recherche a un volume cérébral de deux fois supérieur à la normale! Pourtant, le crâne de ce participant semblait normal. Proposez une explication.

Exercice 3.6

On souhaite faire une comparaison entre la quantité de matière grise présente au niveau du sillon post-central et celle contenue dans le sillon précentral, en moyenne, sur une population. On considère pour cela deux méthodes alternatives: une analyse VBM ou bien une analyse de l’épaisseur corticale (analyse de surface). Quelle technique choisiriez-vous et pourquoi?

Exercice 3.7

Les données d’un participant de recherche sont de qualité médiocre et la segmentation de la matière grise est imprécise. Pour chacune des combinaisons de choix suivantes, quelle technique choisiriez-vous et pourquoi?

  • VBM vs volumétrie manuelle?

  • VBM vs analyse de surface?

Exercice 3.8

Nous avons vu en cours quelques exemples de structures anatomiques cérébrales. Faisons un peu de révision… En utilisant la fenêtre de visualisation ci-dessous (aussi accessible sur cette page web du cours), donnez les coordonnées (x, y, ou z) où l’on peut voir…

  • une coupe sagittale présentant le corps calleux.

  • une coupe coronale présentant le corps calleux.

  • une coupe axiale contenant des ventricules.

  • une coupe axiale avec le sillon central.

Pour un rappel concernant les différents types de coupes du cerveau, veuillez vous référer au Chapitre 1: Cartes cérébrales.

# Ce code récupère des données IRM T1
# et génère une image dans trois plans de coupes

# Enlève les warnings
import warnings
warnings.filterwarnings("ignore")

# Télécharge un scan anatomique (template MNI152)
from nilearn.datasets import fetch_icbm152_2009
mni = fetch_icbm152_2009()

# Visualise le volume cérébral
from nilearn.plotting import view_img

view_img(
    mni.t1,
    bg_img=None,
    black_bg=True,
    cut_coords=[-17, 0, 17],
    title='IRM pondérée en T1',
    cmap='gray',
    symmetric_cmap=False
)

Exercice 3.9

Pour répondre aux questions de cet exercice, lisez d’abord l’article Development of cortical thickness and surface area in autism spectrum disorder de Mensen et collaborateurs (publié en 2017 dans la revue Neuroimage: Clinical, volume 13, pages 215 à 222). Celui-ci est disponible en libre accès à cette adresse. Les questions suivantes requièrent des réponses à développement court.

  • Quel(s) type(s) de participant a(ont) été recruté(s) dans cette étude?

  • Quel est l’objectif principal de l’étude?

  • Quels sont les critères d’inclusion et d’exclusion?

  • Quelle technique de neuroimagerie est utilisée? S’agit-il d’une technique structurelle ou fonctionnelle?

  • Quelle type de séquence d’acquisition d’image est utilisé? Listez les paramètres.

  • Est ce que le traitement des images inclut une(des) étape(s) de recalage? Si oui, de quel(s) type(s)?

  • Les chercheurs ont-ils mis en place une procédure de contrôle qualité? Si oui, résumez cette procédure.

  • Les régions d’intérêt (ROI) sont-elles définies? Si oui, de quelle façon? Avec quel atlas? Combien y en a-t-il?

  • Quelles mesures morphologiques sont utilisées pour chaque région?

  • Quelle figure (ou tableau) répond à l’objectif principal de l’étude?